#include<bits/stdc++.h>
#define int long long
#define rep(i,a,b) for(int i(a);i<=(b);++i)
#define req(i,a,b) for(int i(a);i>=(b);--i)
#define sort stable_sort
using namespace std;
char buf[1<<23],*p1=buf,*p2=buf,ubuf[1<<23],*u=ubuf;
#define getchar() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++)
template<typename TP> inline TP read(TP &num)
{
	TP x=0;
	int f=0;
	char ch=getchar();
	while(ch<48||ch>57) f|=ch=='-',ch=getchar();
	while(48<=ch&&ch<=57) x=(x<<1)+(x<<3)+(ch^48),ch=getchar();
	return num=f?-x:x;
}
template<typename ...Args> inline void read(Args &...args)
{
	(read(args),...);
}
template<typename TP> inline void write(TP x)
{
	(x<0)?(putchar('-'),x=-x):0;
	(x>9)?(write(x/10),0):0;
	putchar((x%10)^48);
}
template<typename TP> inline void writeln(TP x)
{
	write<TP>(x);
	puts("");
}
int q,x,sum;
vector<int> s;
inline int eq(vector<int>::iterator it,int x)
{
	return it!=s.end()&&*it==x;
}
signed main()
{
	freopen("kte.in","r",stdin);
	freopen("kte.out","w",stdout);
	read(q);
//	if(q>3e4)exit(0);
	if(q<=30000)
	{
		while(q--)
		{
			read(x);
			if(eq(lower_bound(s.begin(),s.end(),x),x)) s.erase(lower_bound(s.begin(),s.end(),x)),sum-=x;
			else s.insert(lower_bound(s.begin(),s.end(),x),x),sum+=x;
			if(!s.size()) puts("0");
			else if(s.size()==1) puts("0");
			else if(s.size()==2) writeln(s[1]-s[0]);
			else
			{
				auto it1=s.begin()+1,it2=s.end()-1;
				int sbCJ=s[0]+s[1],SBcj=s.back(),SBCJ=0,cnt=0;
				while(1)
				{
					SBCJ+=max(0ll,sbCJ-SBcj);
					++it1,--it2;
					if(it1==prev(s.end())) break;
					sbCJ+=*it1,SBcj+=*it2;
				}
				writeln(sum-2**s.begin()-SBCJ);
			}
		}
	}
	else
	{
		set<int> s; int iter=7e7/q;
		while(q--)
		{
			read(x);
			if(s.count(x)) s.erase(x),sum-=x;
			else s.emplace(x),sum+=x;
			if(!s.size()) puts("0");
			else if(s.size()==1) puts("0");
			else if(s.size()==2) writeln(*s.rbegin()-*s.begin());
			else
			{
				auto it1=next(s.begin()),it2=prev(s.end());
				int sbCJ=*it1+*s.begin(),SBcj=*it2,SBCJ=0,cnt=0;
				while(1)
				{
					SBCJ+=max(0ll,sbCJ-SBcj);
					++it1,--it2;
					if(it1==prev(s.end())||++cnt>iter) break;
					sbCJ+=*it1,SBcj+=*it2;
				}
				writeln(sum-2**s.begin()-SBCJ);
			}
		}
	}
	return 0;
}
